package com.kexio.security.service;

import com.kexio.core.security.context.UserContext;
import com.kexio.core.security.service.UserContextService;

/**
 * Security模块用户上下文服务接口
 * 扩展core starter的UserContextService接口
 * 
 * @author kexio
 */
public interface SecurityUserContextService extends UserContextService {

    /**
     * 根据用户ID加载用户上下文
     * 
     * @param userId 用户ID
     * @return 用户上下文
     */
    UserContext loadUserContextById(Long userId);

    /**
     * 刷新用户权限信息
     * 
     * @param username 用户名
     * @return 更新后的用户上下文
     */
    UserContext refreshUserPermissions(String username);

    /**
     * 检查用户是否被锁定
     * 
     * @param username 用户名
     * @return 是否被锁定
     */
    boolean isUserLocked(String username);

    /**
     * 获取用户详细信息
     * 
     * @param username 用户名
     * @return 用户上下文包含详细信息
     */
    UserContext loadUserDetails(String username);
}
